This invention relates generally to data processing systems and, more specifically, to testing for and the diagnosis of, errors in address formulation in a large scale data processing system.
Present day large scale data processing systems typically include plurality of processors and permit multiple, interactive program execution by local and remote users. To accommodate such processing volume sizeable data memory must be provided for user programs and data, operating system software, and shared applications programs. Further, sophisticated software and hardware is necessary to manageably manipulate programs and data as the various activities are executed in the system processors.
In satisfying user requirements without exacting a prohibitive price for system main memory, data processing systems employ extended memories in which the primary memory of the system is supplemented by secondary or bulk storage, i.e., magnetic discs or tape drives. Thus, while any one user is actually occupying a small portion of main memory during program execution, the user appears to have a much larger "virtual memory" due to the extension of main memory provided by the secondary storage.
Storage of the information in the main memory may take the form of segments and pages wherein the user programs are divided into variable length segments and the segments may include a plurality of uniform length data pages. The use of paging permits flexibility of information storage and available memory space wherever located, with the page table provided to permit user location of the stored pages.
During the execution of a user's page segment, wherein a relative cell address is provided by the data processor, the intermediate or relative segment address provides for locating a special data word or pointer to the page being addressed, the special data word combining with the relative address to provide the absolute address of the memory cell. More specifically, base designations are provided in real storage to locate data stored therein, the base designation forming a part of the descriptor words of the shared data. Since data is moved around in real storage, the absolute addresses of the stored data are constantly changing, and descriptor words are employed to locate page tables and segments, as well as desired pages. Therefore, a segment descriptor includes the base address of the virtual and the real memory location of the segment, if the segment is non-paged, or the base address of the virtual memory segment if the segment is paged. A page table word provides the base address of a page of the corresponding segment.
Utilizing the foregoing concepts relative addresses are transmutated into absolute addresses in either a single or multiple-step process, depending upon the type of virtual address being processed as well as whether or not the appropriate page table words and/or page tables are immediately available for access by the address preparation logic.
Because of the great importance of accurately translating the relative address into an absolute address, built-in test and diagnostic apparatus are of great value in both testing the system to ensure that proper address formulation is had as well as diagnosing the cause or causes of improper address formulation should an error be found.